
10463:DRM_DCP_VerifyDeviceCert should verify valid devcert
TEST_API_DevCertVerifyDeviceCert(NORMAL, 1 DRM_DCP_VERIFY_DEVICE_CERT, NORMAL)
TEST_API_DevCertVerifyDeviceCert(NORMAL, 2 DRM_DCP_VERIFY_GROUP_CERT, NORMAL)
TEST_API_DevCertVerifyDeviceCert(NORMAL, 4 DRM_DCP_VERIFY_DAC, NORMAL)
TEST_API_DevCertVerifyDeviceCert(NORMAL, 7 DRM_DCP_VERIFY_ENTIRE_CERT, NORMAL)

-------------------BVT ends here--------------------------

10464:DevCertGetAttribute should return an error if a default attribute is missing
TEST_ChangeDevcertNode(Remove, CERTIFICATE, GROUP, DATA/FEATURES/CLOCK)
TEST_API_DevCertGetAttribute(NORMAL, 8 DRM_DEVCERT_SECURECLOCK, NULL, IGNORE)=-2147172273(0X8004C04F, DRM_E_XMLNOTFOUND)

10465:DRM_DCP_GetAttribute fails when asked for invalid attribute
TEST_API_DevCertGetAttribute(NORMAL, 100 Invalid attribute, NULL, IGNORE)=-2147024809(0X80070057, E_INVALIDARG)

10466:DRM_DCP_GetAttribute returns error on null parameters
TEST_API_DevCertGetAttribute(NULL, 1, IGNORE, IGNORE)=-2147024809(0X80070057, E_INVALIDARG)
TEST_API_DevCertGetAttribute(NORMAL, 1, NULL, NULL)=-2147024809(0X80070057, E_INVALIDARG)

10467:DRM_DCP_VerifyDeviceCert(device) should fail if signature is broken
TEST_ChangeDevcertNode(Modify, CERTIFICATE, DEVICE, DATA/UNIQUEID)
TEST_API_DevCertVerifyDeviceCert(NORMAL, 1 DRM_DCP_VERIFY_DEVICE_CERT, NORMAL)=-2147172286(0X8004C042, DRM_E_INVALIDDEVICECERTIFICATETEMPLATE)
TEST_API_DevCertVerifyDeviceCert(NORMAL, 7 DRM_DCP_VERIFY_ENTIRE_CERT, NORMAL)=-2147172286(0X8004C042, DRM_E_INVALIDDEVICECERTIFICATETEMPLATE)
TEST_API_DevCertVerifyDeviceCert(NORMAL, 2 DRM_DCP_VERIFY_GROUP_CERT, NORMAL)
TEST_API_DevCertVerifyDeviceCert(NORMAL, 4 DRM_DCP_VERIFY_DAC, NORMAL)

10468:DRM_DCP_VerifyDeviceCert(all) should fail if security level is modified
TEST_ChangeDevcertNode(Modify, CERTIFICATE, GROUP, DATA/SECURITYLEVEL)
TEST_API_DevCertVerifyDeviceCert(NORMAL, 2 DRM_DCP_VERIFY_GROUP_CERT, NORMAL)=-2147172299(0X8004C035, DRM_E_INVALIDDEVICECERTIFICATE)
TEST_API_DevCertVerifyDeviceCert(NORMAL, 7 DRM_DCP_VERIFY_ENTIRE_CERT, NORMAL)=-2147172299(0X8004C035, DRM_E_INVALIDDEVICECERTIFICATE)
TEST_API_DevCertVerifyDeviceCert(NORMAL, 1 DRM_DCP_VERIFY_DEVICE_CERT, NORMAL)=-2147172299(0X8004C035, DRM_E_INVALIDDEVICECERTIFICATE)
TEST_API_DevCertVerifyDeviceCert(NORMAL, 4 DRM_DCP_VERIFY_DAC, NORMAL)=-2147172299(0X8004C035, DRM_E_INVALIDDEVICECERTIFICATE)

10556:DRM_DCP_VerifyDeviceCert(group) should fail if group cert is modified
TEST_ChangeDevcertNode(Modify, CERTIFICATE, GROUP, DATA/MODEL)
TEST_API_DevCertVerifyDeviceCert(NORMAL, 2 DRM_DCP_VERIFY_GROUP_CERT, NORMAL)=-2147172286(0X8004C042, DRM_E_INVALIDDEVICECERTIFICATETEMPLATE)
TEST_API_DevCertVerifyDeviceCert(NORMAL, 7 DRM_DCP_VERIFY_ENTIRE_CERT, NORMAL)=-2147172286(0X8004C042, DRM_E_INVALIDDEVICECERTIFICATETEMPLATE)
TEST_API_DevCertVerifyDeviceCert(NORMAL, 1 DRM_DCP_VERIFY_DEVICE_CERT, NORMAL)
TEST_API_DevCertVerifyDeviceCert(NORMAL, 4 DRM_DCP_VERIFY_DAC, NORMAL)

10469:DRM_DCP_VerifyDeviceCert(DAC) should fail if DAC is modified
TEST_ChangeDevcertNode(Modify, CERTIFICATE, AUTHORIZATION, DATA/SECURITYLEVEL)
TEST_API_DevCertVerifyDeviceCert(NORMAL, 4 DRM_DCP_VERIFY_DAC, NORMAL)=-2147172286(0X8004C042, DRM_E_INVALIDDEVICECERTIFICATETEMPLATE)
TEST_API_DevCertVerifyDeviceCert(NORMAL, 7 DRM_DCP_VERIFY_ENTIRE_CERT, NORMAL)=-2147172286(0X8004C042, DRM_E_INVALIDDEVICECERTIFICATETEMPLATE)
TEST_API_DevCertVerifyDeviceCert(NORMAL, 1 DRM_DCP_VERIFY_DEVICE_CERT, NORMAL)
TEST_API_DevCertVerifyDeviceCert(NORMAL, 2 DRM_DCP_VERIFY_GROUP_CERT, NORMAL)

10470:DRM_DCP_VerifyDeviceCert(DAC) should fail if root cert is modified
TEST_ChangeDevcertNode(Modify, CERTIFICATE, AUTHORIZATION_ROOT, DATA/PUBLICKEY)
TEST_API_DevCertVerifyDeviceCert(NORMAL, 4 DRM_DCP_VERIFY_DAC, NORMAL)=-2147172286(0X8004C042, DRM_E_INVALIDDEVICECERTIFICATETEMPLATE)
TEST_API_DevCertVerifyDeviceCert(NORMAL, 7 DRM_DCP_VERIFY_ENTIRE_CERT, NORMAL)=-2147172286(0X8004C042, DRM_E_INVALIDDEVICECERTIFICATETEMPLATE)
TEST_API_DevCertVerifyDeviceCert(NORMAL, 1 DRM_DCP_VERIFY_DEVICE_CERT, NORMAL)
TEST_API_DevCertVerifyDeviceCert(NORMAL, 2 DRM_DCP_VERIFY_GROUP_CERT, NORMAL)

10471:No time bomb in devcert
TEST_RollForwardClockInYears(10)
TEST_API_DevCertVerifyDeviceCert(NORMAL, 7 DRM_DCP_VERIFY_ENTIRE_CERT, NORMAL)

10472:DRM_DCP_VerifyDeviceCert(DAC) should fail if root signature node is missing
TEST_ChangeDevcertNode(Remove, CERTIFICATE, AUTHORIZATION_ROOT, MSDRM_SIGNATURE_VALUE)
TEST_API_DevCertVerifyDeviceCert(NORMAL, 4 DRM_DCP_VERIFY_DAC, NORMAL)=-2147172286(0X8004C042, DRM_E_INVALIDDEVICECERTIFICATETEMPLATE)
TEST_API_DevCertVerifyDeviceCert(NORMAL, 7 DRM_DCP_VERIFY_ENTIRE_CERT, NORMAL)=-2147172286(0X8004C042, DRM_E_INVALIDDEVICECERTIFICATETEMPLATE)

11543:DRM_DCP_VerifyDeviceCert(DAC) should fail if DAC signature node is missing
TEST_ChangeDevcertNode(Remove, CERTIFICATE, AUTHORIZATION, MSDRM_SIGNATURE_VALUE)
TEST_API_DevCertVerifyDeviceCert(NORMAL, 4 DRM_DCP_VERIFY_DAC, NORMAL)=-2147172286(0X8004C042, DRM_E_INVALIDDEVICECERTIFICATETEMPLATE)
TEST_API_DevCertVerifyDeviceCert(NORMAL, 7 DRM_DCP_VERIFY_ENTIRE_CERT, NORMAL)=-2147172286(0X8004C042, DRM_E_INVALIDDEVICECERTIFICATETEMPLATE)

11544:DRM_DCP_VerifyDeviceCert(GROUP) should fail if group signature node is missing
TEST_ChangeDevcertNode(Remove, CERTIFICATE, GROUP, MSDRM_SIGNATURE_VALUE)
TEST_API_DevCertVerifyDeviceCert(NORMAL, 2 DRM_DCP_VERIFY_GROUP_CERT, NORMAL)=-2147172286(0X8004C042, DRM_E_INVALIDDEVICECERTIFICATETEMPLATE)
TEST_API_DevCertVerifyDeviceCert(NORMAL, 7 DRM_DCP_VERIFY_ENTIRE_CERT, NORMAL)=-2147172286(0X8004C042, DRM_E_INVALIDDEVICECERTIFICATETEMPLATE)

11545:DRM_DCP_VerifyDeviceCert(DEVICE) should fail if the device signature node is missing
TEST_ChangeDevcertNode(Remove, CERTIFICATE, DEVICE, MSDRM_SIGNATURE_VALUE)
TEST_API_DevCertVerifyDeviceCert(NORMAL, 1 DRM_DCP_VERIFY_DEVICE_CERT, NORMAL)=-2147172286(0X8004C042, DRM_E_INVALIDDEVICECERTIFICATETEMPLATE)
TEST_API_DevCertVerifyDeviceCert(NORMAL, 7 DRM_DCP_VERIFY_ENTIRE_CERT, NORMAL)=-2147172286(0X8004C042, DRM_E_INVALIDDEVICECERTIFICATETEMPLATE)

11546:DRM_DCP_VerifyDeviceCert(DAC) should fail if the root pubkey is missing
TEST_ChangeDevcertNode(Remove, CERTIFICATE, AUTHORIZATION_ROOT, DATA/PUBLICKEY)
TEST_API_DevCertVerifyDeviceCert(NORMAL, 4 DRM_DCP_VERIFY_DAC, NORMAL)=-2147172273(0X8004C04F, DRM_E_XMLNOTFOUND)
TEST_API_DevCertVerifyDeviceCert(NORMAL, 7 DRM_DCP_VERIFY_ENTIRE_CERT, NORMAL)=-2147172273(0X8004C04F, DRM_E_XMLNOTFOUND)

11547:DRM_DCP_VerifyDeviceCert(DAC) should fail if the dac pubkey is missing
TEST_ChangeDevcertNode(Remove, CERTIFICATE, AUTHORIZATION, DATA/PUBLICKEY)
TEST_API_DevCertVerifyDeviceCert(NORMAL, 4 DRM_DCP_VERIFY_DAC, NORMAL)=-2147172286(0X8004C042, DRM_E_INVALIDDEVICECERTIFICATETEMPLATE)
TEST_API_DevCertVerifyDeviceCert(NORMAL, 7 DRM_DCP_VERIFY_ENTIRE_CERT, NORMAL)=-2147172273(0X8004C04F, DRM_E_XMLNOTFOUND)

11548:DRM_DCP_VerifyDeviceCert(GROUP) should fail if the group pubkey is missing
TEST_ChangeDevcertNode(Remove, CERTIFICATE, GROUP, DATA/PUBLICKEY)
TEST_API_DevCertVerifyDeviceCert(NORMAL, 2 DRM_DCP_VERIFY_GROUP_CERT, NORMAL)=-2147172286(0X8004C042, DRM_E_INVALIDDEVICECERTIFICATETEMPLATE)
TEST_API_DevCertVerifyDeviceCert(NORMAL, 7 DRM_DCP_VERIFY_ENTIRE_CERT, NORMAL)=-2147172286(0X8004C042, DRM_E_INVALIDDEVICECERTIFICATETEMPLATE)

11549:DRM_DCP_VerifyDeviceCert(DEVICE) should fail if the fallback cert is missing
TEST_ChangeDevcertNode(Remove, FALLBACK, NULL, NULL)
TEST_API_DevCertVerifyDeviceCert(NORMAL, 1 DRM_DCP_VERIFY_DEVICE_CERT, NORMAL)=-2147172273(0X8004C04F, DRM_E_XMLNOTFOUND)
TEST_API_DevCertVerifyDeviceCert(NORMAL, 7 DRM_DCP_VERIFY_ENTIRE_CERT, NORMAL)=-2147172273(0X8004C04F, DRM_E_XMLNOTFOUND)

11550:DRM_DCP_VerifyDeviceCert(GROUP) should fail if the group cert is missing
TEST_ChangeDevcertNode(Remove, CERTIFICATE, GROUP, NULL)
TEST_API_DevCertVerifyDeviceCert(NORMAL, 2 DRM_DCP_VERIFY_GROUP_CERT, NORMAL)=-2147172299(0X8004C035, DRM_E_INVALIDDEVICECERTIFICATE)
TEST_API_DevCertVerifyDeviceCert(NORMAL, 7 DRM_DCP_VERIFY_ENTIRE_CERT, NORMAL)=-2147172299(0X8004C035, DRM_E_INVALIDDEVICECERTIFICATE)

11551:DRM_DCP_VerifyDeviceCert(DAC) should fail if the dac node is missing
TEST_ChangeDevcertNode(Remove, CERTIFICATE, AUTHORIZATION, NULL)
TEST_API_DevCertVerifyDeviceCert(NORMAL, 4 DRM_DCP_VERIFY_DAC, NORMAL)=-2147172299(0X8004C035, DRM_E_INVALIDDEVICECERTIFICATE)
TEST_API_DevCertVerifyDeviceCert(NORMAL, 7 DRM_DCP_VERIFY_ENTIRE_CERT, NORMAL)=-2147172299(0X8004C035, DRM_E_INVALIDDEVICECERTIFICATE)

11552:DRM_DCP_VerifyDeviceCert(DAC) should fail if the root node is missing
TEST_ChangeDevcertNode(Remove, CERTIFICATE, AUTHORIZATION_ROOT, NULL)
TEST_API_DevCertVerifyDeviceCert(NORMAL, 4 DRM_DCP_VERIFY_DAC, NORMAL)=-2147172273(0X8004C04F, DRM_E_XMLNOTFOUND)
TEST_API_DevCertVerifyDeviceCert(NORMAL, 7 DRM_DCP_VERIFY_ENTIRE_CERT, NORMAL)=-2147172273(0X8004C04F, DRM_E_XMLNOTFOUND)

11553:DRM_DCP_VerifyDeviceCert fails on null devcert
TEST_API_DevCertVerifyDeviceCert(NULL, 4 DRM_DCP_VERIFY_DAC, NORMAL)=-2147024809(0X80070057, E_INVALIDARG)
TEST_API_DevCertVerifyDeviceCert(EMPTY, 4 DRM_DCP_VERIFY_DAC, NORMAL)=-2147024809(0X80070057, E_INVALIDARG)

11554:DRM_DCP_VerifyDeviceCert fails on null crypto context
TEST_API_DevCertVerifyDeviceCert(NORMAL, 4 DRM_DCP_VERIFY_DAC, NULL)=-2147024809(0X80070057, E_INVALIDARG)

11555:DRM_DCP_VerifyDeviceCert fails on invalid attribute flag
TEST_API_DevCertVerifyDeviceCert(NORMAL, 100 Invalid, NORMAL)=-2147024809(0X80070057, E_INVALIDARG)
